CUBE CONNECT Edition Help

Results with multiple CPU cores

When performing parallel calculations in finite-precision arithmetic, floating point errors will vary due to accumulation of individual errors which are not identical. While these errors are extremely small for an individual calculation, the accumulation of these errors can lead to small but noticeable differences in results. Numerically stable algorithms are able to handle such variations in calculation results from step-to-step while still producing final results within a bounded error range. The conjugate gradient solver of Analyst Drive is based off of an unconditionally stable algorithm and so the results obtained are guaranteed to remain within a bounded limit.

In Analyst Drive, users may see variations in results of identical problem runs due to increasing the value of NCORES beyond 1. NCORES is the input parameter which controls the number of threads used in the internal matrix computations where variations in rounding errors may occur. The user should not concern themselves with the small differences that result, but should be aware that they exist and should not expect to get the same exact answer from each identical parallel run. Note that using MPICORES to estimate multiple OD matrices in parallel will not cause this behavior because it simply runs a series of individual estimations in parallel, and does not use multiple threads to perform individual calculations as with the NCORES variable. However, the use of multiple processes from the MPICORES variable can reduce the available number of threads and so if also using NCORES in conjunction with MPICORES could lead to the same behavior described above.

For concerns about the output of parallel runs, see “Parallel computation results” on page 112 (in the Troubleshooting section).